#pragma once

// sdk
#include "CH58x_common.h"
#include "HAL.h"
#include <math.h>

// LIB
#include "uart_cmd.h"
#include "beat_task.h"
#include "button.h"
#include "new_apis.h"
#include "auto_boot.h"
#include "esay_log.h"
#include "public_apis.h"
#include "topic_messenger.h"

#define SYS_FREQ 16000000 // 系统频率
#define SYS_TIC_MS 5      // 系统节拍ms

#define BTN_POWER_LONG_PRESS_PROGRAM 1 // 长按按钮进入编程模式
// #define UART_DEBUG_EN 1                // 开启调试串口
#define UART_DEBUG_BAUDRATE 2000000    // 调试串口波特率
#define DEBUG_IC_LOCK_CH 1             // 开启IC锁调试串口
#define DEBUG_KEEP_WAKE_EN 1           // 开启保持唤醒调试串口

#define UART_DEBUG_CH UART1
#define UART_SF32_CH UART3
#define UART_SF32_BAUDRATE 2000000

#define ADC_BAT_CH 5

#define TIMER_SYSTIC TIMER0

#define BLE_CLOSE_WHITE_LIST 0 // 关闭白名单

#define KEY_BTN_CLICK_TIME_MS 100 // 按键点击时间，太长太短都可能造成无法识别成单击

///////////////////////////////////////////////////////

#define BTN_POWER GPIO_PB22
#define BTN_USB GPIO_PB13

#define KEY_POWER GPIO_PA12
#define KEY_USER GPIO_PA11
#define KEY_DOOR GPIO_PA10
#define KEY_UNLOCK GPIO_PB15
#define KEY_LOCK GPIO_PB14

#define UART_DEBUG_RXD GPIO_PA08
#define UART_DEBUG_TXD GPIO_PA09
#define UART_RTS GPIO_PB12
#define UART_LOCK_CH GPIO_PB07

#define SF32_EN GPIO_PA13
#define UART_SF32_RXD GPIO_PA04
#define UART_SF32_TXD GPIO_PA05

#define USB_DP GPIO_PB11
#define USB_DM GPIO_PB10

#define ADC_BAT GPIO_PA15

#define ADC_EN GPIO_PA14

///////////////////////////////////////////////////////
